package cn.han.oop;
//本类用于测试面向对象第一大特征————封装
public class TestPrivate {
    public static void main(String[] args) {
        Student student = new Student();
        System.out.println(student.name);
        student.learn();
        student.setSub("java");
        student.getSub();
        System.out.println(student.getSub());
    }
}
//1.描述学生这一类型 特征：学号 姓名 科目 功能：学习  吃饭 睡觉
class Student{
    /**1.private是一个修饰符，被他修饰的资源只能在本类中使用，是权限最小的修饰符
     * 2.属性被private修饰，无法直接修改或获取值
     * 3.get//set方法可以获取和修改私有属性*/
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    String name;
//我们需要提供一个公共的方式，共外界操作sub的属性值
    public String getSub() {
        /*如果一个方法需要返回结果，那么这个方法定义的返回值类型就不再是void了
        * 至于具体设置成什么类型，与返回值的类型保持一致
        * 比如我们要返回的sub是String类型，所以方法的返回值类型为String
        * 返回值通过关键字return进行返回*/
        return sub;
    }

    public void setSub(String sub) {
        /*如果一个类中的成员变量与局部变量同名
        * 需要使用this关键字指定：我们规定this指定的那个是成员变量*/
        this.sub = sub;
    }
    //封装sub属性
    private String sub;
    public void learn(){
        System.out.println("正在学习");
    }
    public void eat(){
        System.out.println("正在吃饭");

    }
    public void sleep(){
        System.out.println("正在睡觉");

    }
}
